home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 8 / Revista CD Expert nº 08 CD1.iso / Utilitarios / Programacao / Pacific C for DOS / INCLUDE / STAT.H < prev    next >
C/C++ Source or Header  |  1995-03-08  |  3KB  |  82 lines

  1. #ifndef    _STATDEF
  2. #define    _STATDEF
  3. #if    ATDOS
  4. struct stat
  5. {
  6.     unsigned long    st_ino;        /* unique file number */
  7.     unsigned short    st_dev;        /* id of device containing directory entry */
  8.     unsigned short    st_nlink;    /* # of links */
  9.     unsigned short    st_mode;    /* flags */
  10.     unsigned short    st_uid;        /* owner uid */
  11.     long        st_atime;    /* access time */
  12.     long        st_mtime;    /* modification time */
  13.     long        st_ctime;    /* time of last file status 'change' */
  14.     long        st_size;    /* file size in bytes */
  15. };
  16.  
  17. #define    MAXNAMLEN    255
  18.  
  19. extern int    readdir(int, struct dirbuf *);
  20.  
  21. /* Flag bits in st_mode */
  22.  
  23. #define    S_IFMT        0x638    /* type bits */
  24. #define        S_IFDIR    0x400    /* is a directory */
  25. #define        S_IFREG    0x200    /* is a regular file */
  26. #define        S_IFBLK    0x600    /* is a block device */
  27. #define        S_IFCHR    0x608    /* is a character device */
  28. #define    S_IREAD        0x100    /* file can be read */
  29. #define    S_IWRITE    0x080    /* file can be written */
  30. #define    S_IEXEC        0x040    /* file can be executed */
  31. #define    S_HIDDEN    0x1000    /* file is hidden */
  32. #define    S_SYSTEM    0x2000    /* file is marked system */
  33. #define    S_ARCHIVE    0x4000    /* file has been written to */
  34.  
  35. #define    S_IRWXU    00700        /* read, write, execute: owner */
  36. #define    S_IRUSR    00400        /* read permission: owner */
  37. #define    S_IWUSR    00200        /* write permission: owner */
  38. #define    S_IXUSR    00100        /* execute permission: owner */
  39. #define    S_IRWXO    00007        /* read, write, execute: other */
  40. #define    S_IROTH    00004        /* read permission: other */
  41. #define    S_IWOTH    00002        /* write permission: other */
  42. #define    S_IXOTH    00001        /* execute permission: other */
  43.  
  44. #else    /* ATDOS */
  45.  
  46. struct stat
  47. {
  48.     unsigned long    st_ino;
  49.     unsigned short    st_dev;
  50.     unsigned short    st_mode;    /* flags */
  51.     long        st_atime;    /* access time */
  52.     long        st_mtime;    /* modification time */
  53.     long        st_size;    /* file size in bytes */
  54. };
  55.  
  56. #define    MAXNAMLEN    12
  57.  
  58. /* Flag bits in st_mode */
  59.  
  60. #define    S_IFMT        0x600    /* type bits */
  61. #define        S_IFDIR    0x400    /* is a directory */
  62. #define        S_IFREG    0x200    /* is a regular file */
  63. #define    S_IREAD        0400    /* file can be read */
  64. #define    S_IWRITE    0200    /* file can be written */
  65. #define    S_IEXEC        0100    /* file can be executed */
  66. #define    S_HIDDEN    0x1000    /* file is hidden */
  67. #define    S_SYSTEM    0x2000    /* file is marked system */
  68. #define    S_ARCHIVE    0x4000    /* file has been written to */
  69.  
  70. #endif    /* ATDOS */
  71.  
  72. struct dirbuf
  73. {
  74.     struct stat    di_stat;        /* info on the file */
  75.     char        di_name[MAXNAMLEN+1];    /* the file name */
  76. };
  77. #endif    _STATDEF
  78.  
  79. extern int        stat(char *, struct stat *);
  80. extern struct dirbuf *    ffirst(char *);
  81. extern struct dirbuf *    fnext(void);
  82.